11 定时器输出实验
up的视频讲解同样是 PWM,电机用占空比调节驱动,舵机用脉宽表达位置指令。
up视频里的实验代码: 👣定时器输出实验代码
1 ⚙️PWM控制电机实验
1.1 实验连接
按照图中连接把定时器输出接入驱动模块,电机接到 H 桥输出端;确认主控和驱动模块共地。

1.2 实验原理
电机驱动模块先把 AIN1、AIN2 的逻辑状态送入控制电路,再由 H 桥改变电机两端的连接。

| AIN1 / AIN2 | 电机两端的作用 |
|---|---|
| 1 / 0 | 一个方向驱动 |
| 0 / 1 | 反方向驱动 |
| 0 / 0 | 停止驱动、自由滑行 |
| 1 / 1 | 制动 |
先固定其中一路,再让另一路周期性改变,就能通过 PWM 调整驱动占空比。电机的电气与机械过程把快速变化转化为相应的转速表现。

在向上计数的 PWM 模式 1 中,CNT 小于 CCR 时输出有效电平;模式 2 相反。有效电平究竟是高还是低,还由通道极性决定。

1.3 CubeMX配置



1.4 实验代码
全局
main()
while(1)里面
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1,counter*10);
2 🤖定时器输出PWM控制舵机实验
2.1 实验连接
舵机的电源、地和控制信号按图连接,PWM 控制线接 PA0。

2.2 实验原理
舵机内部包含电机、减速机构和位置反馈。外部 PWM 是位置指令,内部控制电路再据此驱动电机。

本课用 50 Hz,也就是 20 ms 的周期说明脉宽控制。图中的 1 ms、1.5 ms、2 ms 对应示例角度;实际舵机的角度范围要结合其型号。
设定时器输入为 72 MHz,分频 720 后得到 100 kHz 计数时钟,每格为 10 μs。一个 20 ms 周期包含 2000 格,因此对应 PSC = 719、ARR = 1999。
| 脉宽 | 对应计数 |
|---|---|
| 1 ms | CCR = 100 |
| 1.5 ms | CCR = 150 |
| 2 ms | CCR = 200 |

预装载与影子寄存器让参数在规定的更新时刻生效,避免在周期中途随意改变时序。

2.3 CubeMX配置

2.4 实验代码
全局
main()
while(1)里面
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1,counter*10+100);